package com.sure.minion.services.base.handler.exception;

/**
 * @Description 基础自定义runtime异常
 * @author syuan
 * @date 2015年8月28日  下午1:38:54
 * Company: TravelSky
 */
public class DefaultAutoHandledException extends RuntimeException {

	private static final long serialVersionUID = -8254799023618063715L;

	/**
	 * @Fields description 描述信息
	 */
	protected String description;

	/**
	 * @Fields params 参数
	 */
	protected String[] params;
	
	/**
	 * @Fields responseObject 输出对象
	 */
	protected Object responseObject;

	
	public DefaultAutoHandledException() {
		super();
	}

	public DefaultAutoHandledException(Throwable t) {
		super(t);
	}

	public DefaultAutoHandledException(String description) {
		super();
		this.description = description;
	}

	public DefaultAutoHandledException(String description, Object responseObject) {
		super();
		this.description = description;
		this.responseObject = responseObject;
	}
	
	public DefaultAutoHandledException(String description, Throwable t) {
		super(t);
		this.description = description;
	}
	
	public DefaultAutoHandledException(String description, Object responseObject, Throwable t) {
		super(t);
		this.description = description;
		this.responseObject = responseObject;
	}

	public DefaultAutoHandledException(String description, String... params) {
		super();
		this.description = description;
		this.params = params;
	}

	public DefaultAutoHandledException(String description, Object responseObject, String... params) {
		super();
		this.description = description;
		this.responseObject = responseObject;
		this.params = params;
	}
	
	public DefaultAutoHandledException(String description, Throwable t,	String... params) {
		super(t);
		this.description = description;
		this.params = params;
	}

	public DefaultAutoHandledException(String description, Object responseObject, Throwable t,	String... params) {
		super();
		this.description = description;
		this.responseObject = responseObject;
		this.params = params;
	}
	
	public String[] getParams() {
		return params;
	}

	public void setParams(String[] params) {
		this.params = params;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
	
	public Object getResponseObject() {
		return responseObject;
	}

	public void setResponseObject(Object responseObject) {
		this.responseObject = responseObject;
	}


}
